package com.ytjj.quartz.dao;

import com.ytjj.qmyx.mall.model.ReturnGoods;
import com.ytjj.qmyx.mall.model.ReturnRegister;
import com.ytjj.quartz.model.ReturnGoodsResponse;
import com.ytjj.quartz.model.ReturnOrdersResponse;
import com.ytjj.quartz.model.dto.ReturnGoodsDto;
import com.ytjj.quartz.service.ReturnBankerReceResponse;
import com.ytjj.quartz.service.ReturnInvalidResponse;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *
 *
 * @Version: 1.0
 */
public interface ReturnGoodsDao {

	List<ReturnGoodsResponse> selectList();

	void updateStatus(Integer id);

	List<ReturnBankerReceResponse> selectReceList();

	void updateBankerStatus(Integer id);

	/**
	 * 获取等待寄回的退货信息列表
	 */
	List<ReturnInvalidResponse> selectInvalidList();

	/**
	 * 获取仅退款的订单详情
	 */
	List<ReturnOrdersResponse> getAfterOnlyOrderInfos();

	/**
	 * 修改售后订单退款拒绝
	 */
	int refuseOnlyRefund(String serviceNo,String serviceRemarks);

	/**
	 * 更新退货单为失败状态（加限制条件，防止前一时刻已被已被审核通过）
	 */
	int updateInvalidStatus(Integer id);

	/**
	 * 售后状态修改成待退款
	 */
	int agreeOnlyRefund(Integer orderInfoId,String serviceDesc);

	String getBankerStoreAddressTel(Integer id);

    List<ReturnGoods> selectByAfterType();

	Integer updateBankerStatusByAfterType();

	void selectServiceStatus();

	void updateServiceStatus();

    void selectServiceStatusByTwo();

//	void updateNotRefundedStatus();

    List<ReturnGoods> selectByIsRefund();

    List<ReturnGoods> select();

	List<ReturnGoods> selectByStatus();

	/**
	 * 查询需要回到原状态的售后
	 */
    List<ReturnGoodsDto > selectFailStatus(@Param("list") List<String> list);

    void updateServiceStatus2ByStatus();

	void updateServiceStatus3ByStatus();

	/**
	 * 查询范围内符合的原路返回退款单数据
	 * @param day
	 * @return
	 */
    List<ReturnRegister> queryReturnGoodsByDay(@Param("day") int day);

	/**
	 * 获取锁单子订单号
	 */
	List<Integer> getLockOrderInfo(@Param("orderInfoIdList")List<Integer> orderInfoIdList);

	List<ReturnRegister> getOrderReturnAuto();

	void updateOrderReturnAutoState(Integer orderInfoId);

	String getReturnAutoAmount();
}
